Streaming multimedia systems are able to selectively provide multimedia content over a network in the form of a data stream to at least one client application who requests such multimedia content. The streaming server performs the duties of a file server and makes multimedia data available to client applications by request. Conventionally, a streaming server responds to requests made by client applications by providing a copy of the requested multimedia data stream via the same connection, also known as unicast multimedia transmission. This manner of providing multimedia data streams is bandwidth intensive as the streaming server is required to provide a copy of the multimedia data stream to the respective client applications making the request.
A multicast method of transmission was developed in order to substantially reduce the system resources (i.e. required bandwidth) associated with unicast data stream transmission. Multicast transmission of a data stream is similar to broadcast technology of television programming with the exception that, the multicast data stream is only provided to a predetermined group of users. Thus, instead of receiving a copy of the multimedia stream as in the case of unicast transmission, the users or client applications receive information, representing a location of a specific multicast group. Clients, upon receipt of the information access the requested multimedia by subscribing to the multicast group as specified in the information. This manner of accessing a multimedia data stream substantially reduces the bandwidth required in transmitting the data stream to a plurality of users or client applications.
Therefore, a large business whose streaming system is deployed across a wide and heterogeneous network has strong fiscal incentive to utilize the more bandwidth efficient multicast system. However, such a business may not be able to guarantee that all users client or client applications connected via the network are able to receive a multicast data stream and are only able to access data streams using the unicast transmission method. It is desirable to provide a system whose users can fallback to unicast transmission in the case of multicast reception failure.
Another problem that befalls large business is an increase in the number of users or client applications requesting a respective multimedia data stream that is located on a server at a given time. This increase in requests for multimedia data made by client applications may cause the retrieval capability of the underlying storage device to be exceeded. When this happens, the server load capacity has been exceeded and client requests go unserviced.
Avoiding such bottlenecks is important for a multimedia communication system because the quality of the playback experience of video on demand content is heavily dependent on the guaranteed availability of video data at a rate equal to or greater than the rate of playback. Therefore, once the operative mode of the system is successfully determined and applied, it is desirable to provide a system that reduces streaming server load imbalances so that client demand can be met.
Load imbalancing can be prevented by increasing the number of streaming servers in the system, distributing video on demand content to each of them, and proxying requests from a load balancing server. This occurs when the load balancing server redirects client application requests to one of available streaming servers for request handling. However, there are several drawbacks associated with this scheme. One is the time-consuming and resource consuming task of simultaneously maintaining multimedia content synchronization for all system servers. Additionally, a spike in the number of client requests is difficult to predict, thus making it difficult to adequately plan server deployments to handle the increased client requests ahead of time. Therefore, it is desirable to automate the content synchronization process, to replicate content on a dynamic, as needed basis and to make dynamically replicated content available before being duplicated in its' entirety.
A system according to invention principles address these deficiencies and associated problems.